for s in[*open(0)][2::2]:
a=s.split();r=[[0,0]for j in a];i=0
for x in a:x=int(x)-1;r[x][i&1]=r[x][~i&1]+1;i+=1
print(*map(max,r))
/* Two Roads Diverged in a Wood, and I Took the One Less Travelled by,and That Has Made all the Difference */
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define TB \
ios_base ::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
#define endl '\n'
#define ll long long
#define pb push_back
int main()
{
TB;
int tc;
cin >> tc;
while (tc--)
{
int n,i;
cin >> n;
list<int> lst[n + 1];
for (i = 1; i <= n; i++)
{
int x;
cin >> x;
lst[x].pb(i);
}
for (i = 1; i <= n; i++)
{
if (lst[i].size() > 0)
{
int cnt = 1;
int mx = 0;
int check = lst[i].front();
lst[i].pop_front();
while (!lst[i].empty())
{
int cc = lst[i].front() - check-1;
if (cc%2==0)
cnt++;
/*else if(cc>3)
{
mx = max(mx, cnt);
cnt = 1;
}*/
check = lst[i].front();
lst[i].pop_front();
}
mx = max(mx, cnt);
cout << mx << " ";
}
else
cout << 0 << " ";
}
cout << endl;
}
}
1237A - Balanced Rating Changes | 1616A - Integer Diversity |
1627B - Not Sitting | 1663C - Pōja Verdon |
1497A - Meximization | 1633B - Minority |
688B - Lovely Palindromes | 66B - Petya and Countryside |
1557B - Moamen and k-subarrays | 540A - Combination Lock |
1553C - Penalty | 1474E - What Is It |
1335B - Construct the String | 1004B - Sonya and Exhibition |
1397A - Juggling Letters | 985C - Liebig's Barrels |
115A - Party | 746B - Decoding |
1424G - Years | 1663A - Who Tested |
1073B - Vasya and Books | 195B - After Training |
455A - Boredom | 1099A - Snowball |
1651D - Nearest Excluded Points | 599A - Patrick and Shopping |
237A - Free Cash | 1615B - And It's Non-Zero |
1619E - MEX and Increments | 34B - Sale |